/*
 * @Description: 公共工具类
 * @Author: chendingfengmail@163.com
 * @Date: 2021-11-09 09:42:12
 * @LastEditTime: 2022-01-10 15:42:02
 * @LastEditors: chendingfengmail@163.com
 * @Reference: 
 */
import { saveAs } from 'file-saver'
const commons = {}

/**
 * 处理分类数据 将一维数组转化为树形数据结构
 * @param {Object} data - 分类数据
 */
commons.handleGoodsCategoryData = function (data) {

}

/**
 * 分组统计
 * @param datas 数据集合
 * @param keys 分组键值
 * @param callback 回调函数(例如求和还是计算总数)
 * @returns {{}}
 */
commons.groupBy = function (datas, keys, callback) {
    var groups = {};
    var len = keys.length;
    datas.forEach(function (data) {
        var tempObj = null;
        keys.forEach(function (key, index) {
            var val = data[key];
            if (tempObj == null) {
                tempObj = groups;
            }
            //最后一个元素赋值操作
            if (index == len - 1) {
                var cal = 0;
                if (tempObj.hasOwnProperty(val)) {
                    cal = tempObj[val];
                }
                tempObj[val] = callback(cal, data);
            } else {
                if (tempObj.hasOwnProperty(val)) {
                    tempObj = tempObj[val];
                } else {
                    tempObj[val] = {};
                    tempObj = tempObj[val];
                }
            }
        })

    });

    return groups;
}



/**
 * 保存客户端信息到文件
 * @param {Object} data - 客户端信息
 */
commons.saveAsClientDetails = function (data, fileType) {
    var text = `厂家名称：${data.manufacture}\n客户端接入appId：${data.clientId}\n客户端接入app密钥：${data.clientSecret}\n`
    let str = new Blob([text], { type: 'text/plain;charset=utf-8' })
    saveAs(str, `${data.manufacture}.${fileType}`)
}

export default commons;
